﻿using System;
using System.Collections.Generic;

namespace SharpSqlAnalyzer.nodes.mdx
{
	// Token: 0x020003ED RID: 1005
	public class TMdxPropertyNode : TMdxBaseFunctionNode
	{
		// Token: 0x060027C2 RID: 10178 RVA: 0x0033BE04 File Offset: 0x0033A004
		public TMdxPropertyNode()
		{
			this.arguments = new List<TMdxExpNode>();
		}

		// Token: 0x170008F1 RID: 2289
		// (get) Token: 0x060027C3 RID: 10179 RVA: 0x0033BE17 File Offset: 0x0033A017
		public override EMdxDataType MdxDataType
		{
			get
			{
				return EMdxDataType.Member;
			}
		}

		// Token: 0x060027C4 RID: 10180 RVA: 0x0033BE1A File Offset: 0x0033A01A
		public override void init(object arg1, object arg2, object arg3)
		{
			this.arguments = (List<TMdxExpNode>)arg1;
			this.functionSegment = (IMdxIdentifierSegment)arg2;
			this.expSyntax = (EMdxExpSyntax)arg3;
		}

		// Token: 0x170008F2 RID: 2290
		// (get) Token: 0x060027C5 RID: 10181 RVA: 0x0033BE40 File Offset: 0x0033A040
		public override string FunctionName
		{
			get
			{
				return this.functionName;
			}
		}

		// Token: 0x170008F3 RID: 2291
		// (get) Token: 0x060027C6 RID: 10182 RVA: 0x0033BE48 File Offset: 0x0033A048
		public override IMdxIdentifierSegment FunctionSegment
		{
			get
			{
				return this.functionSegment;
			}
		}

		// Token: 0x170008F4 RID: 2292
		// (get) Token: 0x060027C7 RID: 10183 RVA: 0x0033BE50 File Offset: 0x0033A050
		public override List<TMdxExpNode> Arguments
		{
			get
			{
				return this.arguments;
			}
		}

		// Token: 0x170008F5 RID: 2293
		// (get) Token: 0x060027C8 RID: 10184 RVA: 0x0033BE58 File Offset: 0x0033A058
		public override EMdxExpSyntax ExpSyntax
		{
			get
			{
				return this.expSyntax;
			}
		}

		// Token: 0x060027C9 RID: 10185 RVA: 0x0033BE60 File Offset: 0x0033A060
		public override void accept(TParseTreeVisitor v)
		{
			v.preVisit(this);
			v.postVisit(this);
		}

		// Token: 0x060027CA RID: 10186 RVA: 0x0033BE70 File Offset: 0x0033A070
		public override void acceptChildren(TParseTreeVisitor v)
		{
			v.preVisit(this);
			foreach (TMdxExpNode tmdxExpNode in this.arguments)
			{
				tmdxExpNode.acceptChildren(v);
			}
			v.postVisit(this);
		}

		// Token: 0x04001DDB RID: 7643
		private string functionName;

		// Token: 0x04001DDC RID: 7644
		private List<TMdxExpNode> arguments;

		// Token: 0x04001DDD RID: 7645
		private IMdxIdentifierSegment functionSegment;

		// Token: 0x04001DDE RID: 7646
		private EMdxExpSyntax expSyntax;
	}
}
